package main

import (
	"fmt"
)

func main() {
	// var map变量名 map[keytype]valuetype
	// key、value的类型：bool、数字、string、指针、channel 、还可以是只包含前面几个类型的接口、结构体、数组
	// key通常为int 、string类型，value通常为数字（整数、浮点数）、string、map、结构体
	// key：slice、map、function不可以

	// 定义
	// 只声明map内存是没有分配空间
	var m map[int]string

	// 赋值
	// map集合在使用前必须通过make函数进行初始化，才会分配空间：
	m = make(map[int]string, 10)
	m[20095452] = "张三"
	m[20095387] = "李四"
	m[20097291] = "王五"
	m[20095387] = "朱六"
	m[20096699] = "张三"

	// map的key-value是无序的
	// key是不可以重复的,value可以重复的
	fmt.Println(m)

	// 定义方式2
	m2 := make(map[int]string)
	m2[20095452] = "张三"
	m2[20095387] = "李四"
	fmt.Println(m2)

	// 定义方式3
	m3 := map[int]string{
		20095452: "张三",
		20098765: "李四",
	}
	m3[20095387] = "王五"
	fmt.Println(m3)
}
